﻿#region Copyright(c) Anton Shelin, Vladimir Timashkov. All Rights Reserved.
// -----------------------------------------------------------------------------
// Copyright(c) 2010 Anton Shelin, Vladimir Timashkov. All Rights Reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
//   1. No Trademark License - Microsoft Public License (Ms-PL) does not grant you rights to use
//      authors names, logos, or trademarks.
//   2. If you distribute any portion of the software, you must retain all copyright,
//      patent, trademark, and attribution notices that are present in the software.
//   3. If you distribute any portion of the software in source code form, you may do
//      so only under this license by including a complete copy of Microsoft Public License (Ms-PL)
//      with your distribution. If you distribute any portion of the software in compiled
//      or object code form, you may only do so under a license that complies with
//      Microsoft Public License (Ms-PL).
//   4. The names of the authors may not be used to endorse or promote products
//      derived from this software without specific prior written permission.
//
// The software is licensed "as-is." You bear the risk of using it. The authors
// give no express warranties, guarantees or conditions. You may have additional consumer
// rights under your local laws which this license cannot change. To the extent permitted
// under your local laws, the authors exclude the implied warranties of merchantability,
// fitness for a particular purpose and non-infringement.
// -----------------------------------------------------------------------------
#endregion

using SharpDom.Attributes;

namespace SharpDom
{
    /// <summary>Language codes. It contains natural language code recognizable by user agent.
    /// Source - http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx </summary>
    /// <example>en</example>
    public sealed class LangCode : AttributeValue<string>
    {
        /// <summary>Closed constructor</summary>
        private LangCode() {}

        /// <summary>Converts string to LANG CODE</summary>
        /// <param name="value">String to convert</param>
        /// <returns>Created header name</returns>
        public static implicit operator LangCode(string value)
        {
            if (string.IsNullOrEmpty(value)) return null;
            return new LangCode { BaseValue = value };
        }

        /// <summary>Afrikaans</summary>
        public static LangCode af { get { return new LangCode { BaseValue = "af" }; } } 
        /// <summary>Afrikaans (South Africa)</summary>
        public static LangCode af_za { get { return new LangCode { BaseValue = "af-ZA" }; } } 
        /// <summary>Albanian</summary>
        public static LangCode sq { get { return new LangCode { BaseValue = "sq" }; } } 
        /// <summary>Albanian (Albania)</summary>
        public static LangCode sq_al { get { return new LangCode { BaseValue = "sq-AL" }; } } 
        /// <summary>Alsatian (France)</summary>
        public static LangCode gsw_fr { get { return new LangCode { BaseValue = "gsw-FR" }; } }
        /// <summary>Amharic (Ethiopia)</summary>
        public static LangCode am_et { get { return new LangCode { BaseValue = "am-ET" }; } }
        /// <summary>Arabic‎</summary>
        public static LangCode ar { get { return new LangCode { BaseValue = "ar" }; } }
        /// <summary>Arabic (Algeria)‎</summary>
        public static LangCode ar_dz { get { return new LangCode { BaseValue = "ar-DZ" }; } }
        /// <summary>Arabic (Bahrain)‎</summary>
        public static LangCode ar_bh { get { return new LangCode { BaseValue = "ar-BH" }; } }
        /// <summary>Arabic (Egypt)‎</summary>
        public static LangCode ar_eg { get { return new LangCode { BaseValue = "ar-EG" }; } }
        /// <summary>Arabic (Iraq)‎</summary>
        public static LangCode ar_iq { get { return new LangCode { BaseValue = "ar-IQ" }; } }
        /// <summary>Arabic (Jordan)‎</summary>
        public static LangCode ar_jo { get { return new LangCode { BaseValue = "ar-JO" }; } }
        /// <summary>Arabic (Kuwait)‎</summary>
        public static LangCode ar_kw { get { return new LangCode { BaseValue = "ar-KW" }; } }
        /// <summary>Arabic (Lebanon)‎</summary>
        public static LangCode ar_lb { get { return new LangCode { BaseValue = "ar-LB" }; } }
        /// <summary>Arabic (Libya)‎</summary>
        public static LangCode ar_ly { get { return new LangCode { BaseValue = "ar-LY" }; } }
        /// <summary>Arabic (Morocco)‎</summary>
        public static LangCode ar_ma { get { return new LangCode { BaseValue = "ar-MA" }; } }
        /// <summary>Arabic (Oman)‎</summary>
        public static LangCode ar_om { get { return new LangCode { BaseValue = "ar-OM" }; } }
        /// <summary>Arabic (Qatar)‎</summary>
        public static LangCode ar_qa { get { return new LangCode { BaseValue = "ar-QA" }; } }
        /// <summary>Arabic (Saudi Arabia)‎</summary>
        public static LangCode ar_sa { get { return new LangCode { BaseValue = "ar-SA" }; } }
        /// <summary>Arabic (Syria)‎</summary>
        public static LangCode ar_sy { get { return new LangCode { BaseValue = "ar-SY" }; } }
        /// <summary>Arabic (Tunisia)‎</summary>
        public static LangCode ar_tn { get { return new LangCode { BaseValue = "ar-TN" }; } }
        /// <summary>Arabic (U.A.E.)‎</summary>
        public static LangCode ar_ae { get { return new LangCode { BaseValue = "ar-AE" }; } }
        /// <summary>Arabic (Yemen)‎</summary>
        public static LangCode ar_ye { get { return new LangCode { BaseValue = "ar-YE" }; } }
        /// <summary>Armenian</summary>
        public static LangCode hy { get { return new LangCode { BaseValue = "hy" }; } }
        /// <summary>Armenian (Armenia)</summary>
        public static LangCode hy_am { get { return new LangCode { BaseValue = "hy-AM" }; } }
        /// <summary>Assamese (India)</summary>
        public static LangCode as_in { get { return new LangCode { BaseValue = "as-IN" }; } }
        /// <summary>Azeri</summary>
        public static LangCode az { get { return new LangCode { BaseValue = "az" }; } }
        /// <summary>Azeri (Cyrillic, Azerbaijan)</summary>
        public static LangCode az_cyrl_az { get { return new LangCode { BaseValue = "az-Cyrl-AZ" }; } }
        /// <summary>Azeri (Latin, Azerbaijan)</summary>
        public static LangCode az_latn_az { get { return new LangCode { BaseValue = "az-Latn-AZ" }; } }
        /// <summary>Bashkir (Russia)</summary>
        public static LangCode ba_ru { get { return new LangCode { BaseValue = "ba-RU" }; } }
        /// <summary>Basque</summary>
        public static LangCode eu { get { return new LangCode { BaseValue = "eu" }; } }
        /// <summary>Basque (Basque)</summary>
        public static LangCode eu_es { get { return new LangCode { BaseValue = "eu-ES" }; } }
        /// <summary>Belarusian</summary>
        public static LangCode be { get { return new LangCode { BaseValue = "be" }; } }
        /// <summary>Belarusian (Belarus)</summary>
        public static LangCode be_by { get { return new LangCode { BaseValue = "be-BY" }; } }
        /// <summary>Bengali (Bangladesh)</summary>
        public static LangCode bn_bd { get { return new LangCode { BaseValue = "bn-BD" }; } }
        /// <summary>Bengali (India)</summary>
        public static LangCode bn_in { get { return new LangCode { BaseValue = "bn-IN" }; } }
        /// <summary>Bosnian (Cyrillic, Bosnia and Herzegovina)</summary>
        public static LangCode bs_cyrl_ba { get { return new LangCode { BaseValue = "bs-Cyrl-BA" }; } }
        /// <summary>Bosnian (Latin, Bosnia and Herzegovina)</summary>
        public static LangCode bs_latn_ba { get { return new LangCode { BaseValue = "bs-Latn-BA" }; } }
        /// <summary>Breton (France)</summary>
        public static LangCode br_fr { get { return new LangCode { BaseValue = "br-FR" }; } }
        /// <summary>Bulgarian</summary>
        public static LangCode bg { get { return new LangCode { BaseValue = "bg" }; } }
        /// <summary>Bulgarian (Bulgaria)</summary>
        public static LangCode bg_bg { get { return new LangCode { BaseValue = "bg-BG" }; } }
        /// <summary>Catalan</summary>
        public static LangCode ca { get { return new LangCode { BaseValue = "ca" }; } }
        /// <summary>Catalan (Catalan)</summary>
        public static LangCode ca_es { get { return new LangCode { BaseValue = "ca-ES" }; } }
        /// <summary>Chinese (Hong Kong S.A.R.)</summary>
        public static LangCode zh_hk { get { return new LangCode { BaseValue = "zh-HK" }; } }
        /// <summary>Chinese (Macao S.A.R.)</summary>
        public static LangCode zh_mo { get { return new LangCode { BaseValue = "zh-MO" }; } }
        /// <summary>Chinese (People's Republic of China)</summary>
        public static LangCode zh_cn { get { return new LangCode { BaseValue = "zh-CN" }; } }
        /// <summary>Chinese (Simplified)</summary>
        public static LangCode zh_hans { get { return new LangCode { BaseValue = "zh-Hans" }; } }
        /// <summary>Chinese (Singapore)</summary>
        public static LangCode zh_sg { get { return new LangCode { BaseValue = "zh-SG" }; } }
        /// <summary>Chinese (Taiwan)</summary>
        public static LangCode zh_tw { get { return new LangCode { BaseValue = "zh-TW" }; } }
        /// <summary>Chinese (Traditional)</summary>
        public static LangCode zh_hant { get { return new LangCode { BaseValue = "zh-Hant" }; } }
        /// <summary>Corsican (France)</summary>
        public static LangCode co_fr { get { return new LangCode { BaseValue = "co-FR" }; } }
        /// <summary>Croatian</summary>
        public static LangCode hr { get { return new LangCode { BaseValue = "hr" }; } }
        /// <summary>Croatian (Croatia)</summary>
        public static LangCode hr_hr { get { return new LangCode { BaseValue = "hr-HR" }; } }
        /// <summary>Croatian (Latin, Bosnia and Herzegovina)</summary>
        public static LangCode hr_ba { get { return new LangCode { BaseValue = "hr-BA" }; } }
        /// <summary>Czech</summary>
        public static LangCode cs { get { return new LangCode { BaseValue = "cs" }; } }
        /// <summary>Czech (Czech Republic)</summary>
        public static LangCode cs_cz { get { return new LangCode { BaseValue = "cs-CZ" }; } }
        /// <summary>Danish</summary>
        public static LangCode da { get { return new LangCode { BaseValue = "da" }; } }
        /// <summary>Danish (Denmark)</summary>
        public static LangCode da_dk { get { return new LangCode { BaseValue = "da-DK" }; } }
        /// <summary>Dari (Afghanistan)</summary>
        public static LangCode prs_af { get { return new LangCode { BaseValue = "prs-AF" }; } }
        /// <summary>Divehi‎</summary>
        public static LangCode div { get { return new LangCode { BaseValue = "div" }; } }
        /// <summary>Divehi (Maldives)‎</summary>
        public static LangCode div_mv { get { return new LangCode { BaseValue = "div-MV" }; } }
        /// <summary>Dutch</summary>
        public static LangCode nl { get { return new LangCode { BaseValue = "nl" }; } }
        /// <summary>Dutch (Belgium)</summary>
        public static LangCode nl_be { get { return new LangCode { BaseValue = "nl-BE" }; } }
        /// <summary>Dutch (Netherlands)</summary>
        public static LangCode nl_nl { get { return new LangCode { BaseValue = "nl-NL" }; } }
        /// <summary>English</summary>
        public static LangCode en { get { return new LangCode { BaseValue = "en" }; } }
        /// <summary>English (Australia)</summary>
        public static LangCode en_au { get { return new LangCode { BaseValue = "en-AU" }; } }
        /// <summary>English (Belize)</summary>
        public static LangCode en_bz { get { return new LangCode { BaseValue = "en-BZ" }; } }
        /// <summary>English (Canada)</summary>
        public static LangCode en_ca { get { return new LangCode { BaseValue = "en-CA" }; } }
        /// <summary>English (Caribbean)</summary>
        public static LangCode en_029 { get { return new LangCode { BaseValue = "en-029" }; } }
        /// <summary>English (India)</summary>
        public static LangCode en_in { get { return new LangCode { BaseValue = "en-IN" }; } }
        /// <summary>English (Ireland)</summary>
        public static LangCode en_ie { get { return new LangCode { BaseValue = "en-IE" }; } }
        /// <summary>English (Jamaica)</summary>
        public static LangCode en_jm { get { return new LangCode { BaseValue = "en-JM" }; } }
        /// <summary>English (Malaysia)</summary>
        public static LangCode en_my { get { return new LangCode { BaseValue = "en-MY" }; } }
        /// <summary>English (New Zealand)</summary>
        public static LangCode en_nz { get { return new LangCode { BaseValue = "en-NZ" }; } }
        /// <summary>English (Republic of the Philippines)</summary>
        public static LangCode en_ph { get { return new LangCode { BaseValue = "en-PH" }; } }
        /// <summary>English (Singapore)</summary>
        public static LangCode en_sg { get { return new LangCode { BaseValue = "en-SG" }; } }
        /// <summary>English (South Africa)</summary>
        public static LangCode en_za { get { return new LangCode { BaseValue = "en-ZA" }; } }
        /// <summary>English (Trinidad and Tobago)</summary>
        public static LangCode en_tt { get { return new LangCode { BaseValue = "en-TT" }; } }
        /// <summary>English (United Kingdom)</summary>
        public static LangCode en_gb { get { return new LangCode { BaseValue = "en-GB" }; } }
        /// <summary>English (United States)</summary>
        public static LangCode en_us { get { return new LangCode { BaseValue = "en-US" }; } }
        /// <summary>English (Zimbabwe)</summary>
        public static LangCode en_zw { get { return new LangCode { BaseValue = "en-ZW" }; } }
        /// <summary>Estonian</summary>
        public static LangCode et { get { return new LangCode { BaseValue = "et" }; } }
        /// <summary>Estonian (Estonia)</summary>
        public static LangCode et_ee { get { return new LangCode { BaseValue = "et-EE" }; } }
        /// <summary>Faroese</summary>
        public static LangCode fo { get { return new LangCode { BaseValue = "fo" }; } }
        /// <summary>Faroese (Faroe Islands)</summary>
        public static LangCode fo_fo { get { return new LangCode { BaseValue = "fo-FO" }; } }
        /// <summary>Filipino (Philippines)</summary>
        public static LangCode fil_ph { get { return new LangCode { BaseValue = "fil-PH" }; } }
        /// <summary>Finnish</summary>
        public static LangCode fi { get { return new LangCode { BaseValue = "fi" }; } }
        /// <summary>Finnish (Finland)</summary>
        public static LangCode fi_fi { get { return new LangCode { BaseValue = "fi-FI" }; } }
        /// <summary>French</summary>
        public static LangCode fr { get { return new LangCode { BaseValue = "fr" }; } }
        /// <summary>French (Belgium)</summary>
        public static LangCode fr_be { get { return new LangCode { BaseValue = "fr-BE" }; } }
        /// <summary>French (Canada)</summary>
        public static LangCode fr_ca { get { return new LangCode { BaseValue = "fr-CA" }; } }
        /// <summary>French (France)</summary>
        public static LangCode fr_fr { get { return new LangCode { BaseValue = "fr-FR" }; } }
        /// <summary>French (Luxembourg)</summary>
        public static LangCode fr_lu { get { return new LangCode { BaseValue = "fr-LU" }; } }
        /// <summary>French (Principality of Monaco)</summary>
        public static LangCode fr_mc { get { return new LangCode { BaseValue = "fr-MC" }; } }
        /// <summary>French (Switzerland)</summary>
        public static LangCode fr_ch { get { return new LangCode { BaseValue = "fr-CH" }; } }
        /// <summary>Frisian (Netherlands)</summary>
        public static LangCode fy_nl { get { return new LangCode { BaseValue = "fy-NL" }; } }
        /// <summary>Galician</summary>
        public static LangCode gl { get { return new LangCode { BaseValue = "gl" }; } }
        /// <summary>Galician (Galician)</summary>
        public static LangCode gl_es { get { return new LangCode { BaseValue = "gl-ES" }; } }
        /// <summary>Georgian</summary>
        public static LangCode ka { get { return new LangCode { BaseValue = "ka" }; } }
        /// <summary>Georgian (Georgia)</summary>
        public static LangCode ka_ge { get { return new LangCode { BaseValue = "ka-GE" }; } }
        /// <summary>German</summary>
        public static LangCode de { get { return new LangCode { BaseValue = "de" }; } }
        /// <summary>German (Austria)</summary>
        public static LangCode de_at { get { return new LangCode { BaseValue = "de-AT" }; } }
        /// <summary>German (Germany)</summary>
        public static LangCode de_de { get { return new LangCode { BaseValue = "de-DE" }; } }
        /// <summary>German (Liechtenstein)</summary>
        public static LangCode de_li { get { return new LangCode { BaseValue = "de-LI" }; } }
        /// <summary>German (Luxembourg)</summary>
        public static LangCode de_Lu { get { return new LangCode { BaseValue = "de-LU" }; } }
        /// <summary>German (Switzerland)</summary>
        public static LangCode de_ch { get { return new LangCode { BaseValue = "de-CH" }; } }
        /// <summary>Greek</summary>
        public static LangCode el { get { return new LangCode { BaseValue = "el" }; } }
        /// <summary>Greek (Greece)</summary>
        public static LangCode el_gr { get { return new LangCode { BaseValue = "el-GR" }; } }
        /// <summary>Greenlandic (Greenland)</summary>
        public static LangCode kl_gl { get { return new LangCode { BaseValue = "kl-GL" }; } }
        /// <summary>Gujarati</summary>
        public static LangCode gu { get { return new LangCode { BaseValue = "gu" }; } }
        /// <summary>Gujarati (India)</summary>
        public static LangCode gu_in { get { return new LangCode { BaseValue = "gu-IN" }; } }
        /// <summary>Hausa (Latin, Nigeria)</summary>
        public static LangCode ha_latn_ng { get { return new LangCode { BaseValue = "ha-Latn-NG" }; } }
        /// <summary>Hebrew‎</summary>
        public static LangCode he { get { return new LangCode { BaseValue = "he" }; } }
        /// <summary>Hebrew (Israel)‎</summary>
        public static LangCode he_il { get { return new LangCode { BaseValue = "he-IL" }; } }
        /// <summary>Hindi</summary>
        public static LangCode hi { get { return new LangCode { BaseValue = "hi" }; } }
        /// <summary>Hindi (India)</summary>
        public static LangCode hi_in { get { return new LangCode { BaseValue = "hi-IN" }; } }
        /// <summary>Hungarian</summary>
        public static LangCode hu { get { return new LangCode { BaseValue = "hu" }; } }
        /// <summary>Hungarian (Hungary)</summary>
        public static LangCode hu_hu { get { return new LangCode { BaseValue = "hu-HU" }; } }
        /// <summary>Icelandic</summary>
        public static LangCode @is { get { return new LangCode { BaseValue = "is" }; } }
        /// <summary>Icelandic (Iceland)</summary>
        public static LangCode is_is { get { return new LangCode { BaseValue = "is-IS" }; } }
        /// <summary>Igbo (Nigeria)</summary>
        public static LangCode ig_ng { get { return new LangCode { BaseValue = "ig-NG" }; } }
        /// <summary>Indonesian</summary>
        public static LangCode id { get { return new LangCode { BaseValue = "id" }; } }
        /// <summary>Indonesian (Indonesia)</summary>
        public static LangCode id_id { get { return new LangCode { BaseValue = "id-ID" }; } }
        /// <summary>Inuktitut (Latin, Canada)</summary>
        public static LangCode iu_latn_ca { get { return new LangCode { BaseValue = "iu-Latn-CA" }; } }
        /// <summary>Inuktitut (Syllabics, Canada)</summary>
        public static LangCode iu_cans_ca { get { return new LangCode { BaseValue = "iu-Cans-CA" }; } }
        /// <summary>Irish (Ireland)</summary>
        public static LangCode ga_ie { get { return new LangCode { BaseValue = "ga-IE" }; } }
        /// <summary>isiXhosa (South Africa)</summary>
        public static LangCode xh_za { get { return new LangCode { BaseValue = "xh-ZA" }; } }
        /// <summary>isiZulu (South Africa)</summary>
        public static LangCode zu_za { get { return new LangCode { BaseValue = "zu-ZA" }; } }
        /// <summary>Italian</summary>
        public static LangCode it { get { return new LangCode { BaseValue = "it" }; } }
        /// <summary>Italian (Italy)</summary>
        public static LangCode it_it { get { return new LangCode { BaseValue = "it-IT" }; } }
        /// <summary>Italian (Switzerland)</summary>
        public static LangCode it_ch { get { return new LangCode { BaseValue = "it-CH" }; } }
        /// <summary>Japanese</summary>
        public static LangCode ja { get { return new LangCode { BaseValue = "ja" }; } }
        /// <summary>Japanese (Japan)</summary>
        public static LangCode ja_jp { get { return new LangCode { BaseValue = "ja-JP" }; } }
        /// <summary>Kannada</summary>
        public static LangCode kn { get { return new LangCode { BaseValue = "kn" }; } }
        /// <summary>Kannada (India)</summary>
        public static LangCode kn_in { get { return new LangCode { BaseValue = "kn-IN" }; } }
        /// <summary>Kazakh</summary>
        public static LangCode kk { get { return new LangCode { BaseValue = "kk" }; } }
        /// <summary>Kazakh (Kazakhstan)</summary>
        public static LangCode kk_kz { get { return new LangCode { BaseValue = "kk-KZ" }; } }
        /// <summary>Khmer (Cambodia)</summary>
        public static LangCode km_kh { get { return new LangCode { BaseValue = "km-KH" }; } }
        /// <summary>K'iche (Guatemala)</summary>
        public static LangCode qut_gt { get { return new LangCode { BaseValue = "qut-GT" }; } }
        /// <summary>Kinyarwanda (Rwanda)</summary>
        public static LangCode rw_rw { get { return new LangCode { BaseValue = "rw-RW" }; } }
        /// <summary>Kiswahili</summary>
        public static LangCode sw { get { return new LangCode { BaseValue = "sw" }; } }
        /// <summary>Kiswahili (Kenya)</summary>
        public static LangCode sw_ke { get { return new LangCode { BaseValue = "sw-KE" }; } }
        /// <summary>Konkani</summary>
        public static LangCode kok { get { return new LangCode { BaseValue = "kok" }; } }
        /// <summary>Konkani (India)</summary>
        public static LangCode kok_in { get { return new LangCode { BaseValue = "kok-IN" }; } }
        /// <summary>Korean</summary>
        public static LangCode ko { get { return new LangCode { BaseValue = "ko" }; } }
        /// <summary>Korean (Korea)</summary>
        public static LangCode ko_kr { get { return new LangCode { BaseValue = "ko-KR" }; } }
        /// <summary>Kyrgyz</summary>
        public static LangCode ky { get { return new LangCode { BaseValue = "ky" }; } }
        /// <summary>Kyrgyz (Kyrgyzstan)</summary>
        public static LangCode ky_kg { get { return new LangCode { BaseValue = "ky-KG" }; } }
        /// <summary>Lao (Lao P.D.R.)</summary>
        public static LangCode lo_la { get { return new LangCode { BaseValue = "lo-LA" }; } }
        /// <summary>Latvian</summary>
        public static LangCode lv { get { return new LangCode { BaseValue = "lv" }; } }
        /// <summary>Latvian (Latvia)</summary>
        public static LangCode lv_lv { get { return new LangCode { BaseValue = "lv-LV" }; } }
        /// <summary>Lithuanian</summary>
        public static LangCode lt { get { return new LangCode { BaseValue = "lt" }; } }
        /// <summary>Lithuanian (Lithuania)</summary>
        public static LangCode lt_lt { get { return new LangCode { BaseValue = "lt-LT" }; } }
        /// <summary>Lower Sorbian (Germany)</summary>
        public static LangCode wee_de { get { return new LangCode { BaseValue = "wee-DE" }; } }
        /// <summary>Luxembourgish (Luxembourg)</summary>
        public static LangCode lb_lu { get { return new LangCode { BaseValue = "lb-LU" }; } }
        /// <summary>Macedonian</summary>
        public static LangCode mk { get { return new LangCode { BaseValue = "mk" }; } }
        /// <summary>Macedonian (Former Yugoslav Republic of Macedonia)</summary>
        public static LangCode mk_mk { get { return new LangCode { BaseValue = "mk-MK" }; } }
        /// <summary>Malay</summary>
        public static LangCode ms { get { return new LangCode { BaseValue = "ms" }; } }
        /// <summary>Malay (Brunei Darussalam)</summary>
        public static LangCode ms_bn { get { return new LangCode { BaseValue = "ms-BN" }; } }
        /// <summary>Malay (Malaysia)</summary>
        public static LangCode ms_my { get { return new LangCode { BaseValue = "ms-MY" }; } }
        /// <summary>Malayalam (India)</summary>
        public static LangCode ml_in { get { return new LangCode { BaseValue = "ml-IN" }; } }
        /// <summary>Maltese (Malta)</summary>
        public static LangCode mt_mt { get { return new LangCode { BaseValue = "mt-MT" }; } }
        /// <summary>Maori (New Zealand)</summary>
        public static LangCode mi_nz { get { return new LangCode { BaseValue = "mi-NZ" }; } }
        /// <summary>Mapudungun (Chile)</summary>
        public static LangCode arn_cl { get { return new LangCode { BaseValue = "arn-CL" }; } }
        /// <summary>Marathi</summary>
        public static LangCode mr { get { return new LangCode { BaseValue = "mr" }; } }
        /// <summary>Marathi (India)</summary>
        public static LangCode mr_in { get { return new LangCode { BaseValue = "mr-IN" }; } }
        /// <summary>Mohawk (Mohawk)</summary>
        public static LangCode moh_ca { get { return new LangCode { BaseValue = "moh-CA" }; } }
        /// <summary>Mongolian</summary>
        public static LangCode mn { get { return new LangCode { BaseValue = "mn" }; } }
        /// <summary>Mongolian (Cyrillic, Mongolia)</summary>
        public static LangCode mn_mn { get { return new LangCode { BaseValue = "mn-MN" }; } }
        /// <summary>Mongolian (Traditional Mongolian, PRC)</summary>
        public static LangCode mn_mong_cn { get { return new LangCode { BaseValue = "mn-Mong-CN" }; } }
        /// <summary>Nepali (Nepal)</summary>
        public static LangCode ne_np { get { return new LangCode { BaseValue = "ne-NP" }; } }
        /// <summary>Norwegian</summary>
        public static LangCode no { get { return new LangCode { BaseValue = "no" }; } }
        /// <summary>Norwegian, Bokmål (Norway)</summary>
        public static LangCode nb_no { get { return new LangCode { BaseValue = "nb-NO" }; } }
        /// <summary>Norwegian, Nynorsk (Norway)</summary>
        public static LangCode nn_no { get { return new LangCode { BaseValue = "nn-NO" }; } }
        /// <summary>Occitan (France)</summary>
        public static LangCode oc_fr { get { return new LangCode { BaseValue = "oc-FR" }; } }
        /// <summary>Oriya (India)</summary>
        public static LangCode or_in { get { return new LangCode { BaseValue = "or-IN" }; } }
        /// <summary>Pashto (Afghanistan)</summary>
        public static LangCode ps_af { get { return new LangCode { BaseValue = "ps-AF" }; } }
        /// <summary>Persian‎</summary>
        public static LangCode fa { get { return new LangCode { BaseValue = "fa" }; } }
        /// <summary>Persian‎</summary>
        public static LangCode fa_ir { get { return new LangCode { BaseValue = "fa-IR" }; } }
        /// <summary>Polish</summary>
        public static LangCode pl { get { return new LangCode { BaseValue = "pl" }; } }
        /// <summary>Polish (Poland)</summary>
        public static LangCode pl_pl { get { return new LangCode { BaseValue = "pl-PL" }; } }
        /// <summary>Portuguese</summary>
        public static LangCode pt { get { return new LangCode { BaseValue = "pt" }; } }
        /// <summary>Portuguese (Brazil)</summary>
        public static LangCode pt_br { get { return new LangCode { BaseValue = "pt-BR" }; } }
        /// <summary>Portuguese (Portugal)</summary>
        public static LangCode pt_pt { get { return new LangCode { BaseValue = "pt-PT" }; } }
        /// <summary>Punjabi</summary>
        public static LangCode pa { get { return new LangCode { BaseValue = "pa" }; } }
        /// <summary>Punjabi (India)</summary>
        public static LangCode pa_in { get { return new LangCode { BaseValue = "pa-IN" }; } }
        /// <summary>Quechua (Bolivia)</summary>
        public static LangCode quz_bo { get { return new LangCode { BaseValue = "quz-BO" }; } }
        /// <summary>Quechua (Ecuador)</summary>
        public static LangCode quz_ec { get { return new LangCode { BaseValue = "quz-EC" }; } }
        /// <summary>Quechua (Peru)</summary>
        public static LangCode quz_pe { get { return new LangCode { BaseValue = "quz-PE" }; } }
        /// <summary>Romanian</summary>
        public static LangCode ro { get { return new LangCode { BaseValue = "ro" }; } }
        /// <summary>Romanian (Romania)</summary>
        public static LangCode ro_ro { get { return new LangCode { BaseValue = "ro-RO" }; } }
        /// <summary>Romansh (Switzerland)</summary>
        public static LangCode rm_ch { get { return new LangCode { BaseValue = "rm-CH" }; } }
        /// <summary>Russian</summary>
        public static LangCode ru { get { return new LangCode { BaseValue = "ru" }; } }
        /// <summary>Russian (Russia)</summary>
        public static LangCode ru_ru { get { return new LangCode { BaseValue = "ru-RU" }; } }
        /// <summary>Sami, Inari (Finland)</summary>
        public static LangCode smn_fi { get { return new LangCode { BaseValue = "smn-FI" }; } }
        /// <summary>Sami, Lule (Norway)</summary>
        public static LangCode smj_no { get { return new LangCode { BaseValue = "smj-NO" }; } }
        /// <summary>Sami, Lule (Sweden)</summary>
        public static LangCode smj_se { get { return new LangCode { BaseValue = "smj-SE" }; } }
        /// <summary>Sami, Northern (Finland)</summary>
        public static LangCode se_fi { get { return new LangCode { BaseValue = "se-FI" }; } }
        /// <summary>Sami, Northern (Norway)</summary>
        public static LangCode se_no { get { return new LangCode { BaseValue = "se-NO" }; } }
        /// <summary>Sami, Northern (Sweden)</summary>
        public static LangCode se_se { get { return new LangCode { BaseValue = "se-SE" }; } }
        /// <summary>Sami, Skolt (Finland)</summary>
        public static LangCode sms_fi { get { return new LangCode { BaseValue = "sms-FI" }; } }
        /// <summary>Sami, Southern (Norway)</summary>
        public static LangCode sma_no { get { return new LangCode { BaseValue = "sma-NO" }; } }
        /// <summary>Sami, Southern (Sweden)</summary>
        public static LangCode sma_se { get { return new LangCode { BaseValue = "sma-SE" }; } }
        /// <summary>Sanskrit</summary>
        public static LangCode sa { get { return new LangCode { BaseValue = "sa" }; } }
        /// <summary>Sanskrit (India)</summary>
        public static LangCode sa_in { get { return new LangCode { BaseValue = "sa-IN" }; } }
        /// <summary>Serbian</summary>
        public static LangCode sr { get { return new LangCode { BaseValue = "sr" }; } }
        /// <summary>Serbian (Cyrillic, Bosnia and Herzegovina)</summary>
        public static LangCode sr_cyrl_ba { get { return new LangCode { BaseValue = "sr-Cyrl-BA" }; } }
        /// <summary>Serbian (Cyrillic, Serbia)</summary>
        public static LangCode sr_cyrl_sp { get { return new LangCode { BaseValue = "sr-Cyrl-SP" }; } }
        /// <summary>Serbian (Latin, Bosnia and Herzegovina)</summary>
        public static LangCode sr_latn_ba { get { return new LangCode { BaseValue = "sr-Latn-BA" }; } }
        /// <summary>Serbian (Latin, Serbia)</summary>
        public static LangCode sr_latn_sp { get { return new LangCode { BaseValue = "sr-Latn-SP" }; } }
        /// <summary>Sesotho sa Leboa (South Africa)</summary>
        public static LangCode nso_za { get { return new LangCode { BaseValue = "nso-ZA" }; } }
        /// <summary>Setswana (South Africa)</summary>
        public static LangCode tn_za { get { return new LangCode { BaseValue = "tn-ZA" }; } }
        /// <summary>Sinhala (Sri Lanka)</summary>
        public static LangCode si_lk { get { return new LangCode { BaseValue = "si-LK" }; } }
        /// <summary>Slovak</summary>
        public static LangCode sk { get { return new LangCode { BaseValue = "sk" }; } }
        /// <summary>Slovak (Slovakia)</summary>
        public static LangCode sk_sk { get { return new LangCode { BaseValue = "sk-SK" }; } }
        /// <summary>Slovenian</summary>
        public static LangCode sl { get { return new LangCode { BaseValue = "sl" }; } }
        /// <summary>Slovenian (Slovenia)</summary>
        public static LangCode sl_si { get { return new LangCode { BaseValue = "sl-SI" }; } }
        /// <summary>Spanish</summary>
        public static LangCode es { get { return new LangCode { BaseValue = "es" }; } }
        /// <summary>Spanish (Argentina)</summary>
        public static LangCode es_ar { get { return new LangCode { BaseValue = "es-AR" }; } }
        /// <summary>Spanish (Bolivia)</summary>
        public static LangCode es_bo { get { return new LangCode { BaseValue = "es-BO" }; } }
        /// <summary>Spanish (Chile)</summary>
        public static LangCode es_cl { get { return new LangCode { BaseValue = "es-CL" }; } }
        /// <summary>Spanish (Colombia)</summary>
        public static LangCode es_co { get { return new LangCode { BaseValue = "es-CO" }; } }
        /// <summary>Spanish (Costa Rica)</summary>
        public static LangCode es_cr { get { return new LangCode { BaseValue = "es-CR" }; } }
        /// <summary>Spanish (Dominican Republic)</summary>
        public static LangCode es_do { get { return new LangCode { BaseValue = "es-DO" }; } }
        /// <summary>Spanish (Ecuador)</summary>
        public static LangCode es_ec { get { return new LangCode { BaseValue = "es-EC" }; } }
        /// <summary>Spanish (El Salvador)</summary>
        public static LangCode es_sv { get { return new LangCode { BaseValue = "es-SV" }; } }
        /// <summary>Spanish (Guatemala)</summary>
        public static LangCode es_gt { get { return new LangCode { BaseValue = "es-GT" }; } }
        /// <summary>Spanish (Honduras)</summary>
        public static LangCode es_hn { get { return new LangCode { BaseValue = "es-HN" }; } }
        /// <summary>Spanish (Mexico)</summary>
        public static LangCode es_mx { get { return new LangCode { BaseValue = "es-MX" }; } }
        /// <summary>Spanish (Nicaragua)</summary>
        public static LangCode es_ni { get { return new LangCode { BaseValue = "es-NI" }; } }
        /// <summary>Spanish (Panama)</summary>
        public static LangCode es_pa { get { return new LangCode { BaseValue = "es-PA" }; } }
        /// <summary>Spanish (Paraguay)</summary>
        public static LangCode es_py { get { return new LangCode { BaseValue = "es-PY" }; } }
        /// <summary>Spanish (Peru)</summary>
        public static LangCode es_pe { get { return new LangCode { BaseValue = "es-PE" }; } }
        /// <summary>Spanish (Puerto Rico)</summary>
        public static LangCode es_pr { get { return new LangCode { BaseValue = "es-PR" }; } }
        /// <summary>Spanish (Spain)</summary>
        public static LangCode es_es { get { return new LangCode { BaseValue = "es-ES" }; } }
        /// <summary>Spanish (United States)</summary>
        public static LangCode es_us { get { return new LangCode { BaseValue = "es-US" }; } }
        /// <summary>Spanish (Uruguay)</summary>
        public static LangCode es_uy { get { return new LangCode { BaseValue = "es-UY" }; } }
        /// <summary>Spanish (Venezuela)</summary>
        public static LangCode es_ve { get { return new LangCode { BaseValue = "es-VE" }; } }
        /// <summary>Swedish</summary>
        public static LangCode sv { get { return new LangCode { BaseValue = "sv" }; } }
        /// <summary>Swedish (Finland)</summary>
        public static LangCode sv_fi { get { return new LangCode { BaseValue = "sv-FI" }; } }
        /// <summary>Swedish (Sweden)</summary>
        public static LangCode sv_se { get { return new LangCode { BaseValue = "sv-SE" }; } }
        /// <summary>Syriac‎</summary>
        public static LangCode syr { get { return new LangCode { BaseValue = "syr" }; } }
        /// <summary>Syriac (Syria)‎</summary>
        public static LangCode syr_sy { get { return new LangCode { BaseValue = "syr-SY" }; } }
        /// <summary>Tajik (Cyrillic, Tajikistan)</summary>
        public static LangCode tg_cyrl_tj { get { return new LangCode { BaseValue = "tg-Cyrl-TJ" }; } }
        /// <summary>Tamazight (Latin, Algeria)</summary>
        public static LangCode tzm_latn_dz { get { return new LangCode { BaseValue = "tzm-Latn-DZ" }; } }
        /// <summary>Tamil</summary>
        public static LangCode ta { get { return new LangCode { BaseValue = "ta" }; } }
        /// <summary>Tamil (India)</summary>
        public static LangCode ta_in { get { return new LangCode { BaseValue = "ta-IN" }; } }
        /// <summary>Tatar</summary>
        public static LangCode tt { get { return new LangCode { BaseValue = "tt" }; } }
        /// <summary>Tatar (Russia)</summary>
        public static LangCode tt_ru { get { return new LangCode { BaseValue = "tt-RU" }; } }
        /// <summary>Telugu</summary>
        public static LangCode te { get { return new LangCode { BaseValue = "te" }; } }
        /// <summary>Telugu (India)</summary>
        public static LangCode te_in { get { return new LangCode { BaseValue = "te-IN" }; } }
        /// <summary>Thai</summary>
        public static LangCode th { get { return new LangCode { BaseValue = "th" }; } }
        /// <summary>Thai (Thailand)</summary>
        public static LangCode th_th { get { return new LangCode { BaseValue = "th-TH" }; } }
        /// <summary>Tibetan (PRC)</summary>
        public static LangCode bo_cn { get { return new LangCode { BaseValue = "bo-CN" }; } }
        /// <summary>Turkish</summary>
        public static LangCode tr { get { return new LangCode { BaseValue = "tr" }; } }
        /// <summary>Turkish (Turkey)</summary>
        public static LangCode tr_tr { get { return new LangCode { BaseValue = "tr-TR" }; } }
        /// <summary>Turkmen (Turkmenistan)</summary>
        public static LangCode tk_tm { get { return new LangCode { BaseValue = "tk-TM" }; } }
        /// <summary>Uighur (PRC)</summary>
        public static LangCode ug_cn { get { return new LangCode { BaseValue = "ug-CN" }; } }
        /// <summary>Ukrainian</summary>
        public static LangCode uk { get { return new LangCode { BaseValue = "uk" }; } }
        /// <summary>Ukrainian (Ukraine)</summary>
        public static LangCode uk_ua { get { return new LangCode { BaseValue = "uk-UA" }; } }
        /// <summary>Upper Sorbian (Germany)</summary>
        public static LangCode wen_de { get { return new LangCode { BaseValue = "wen-DE" }; } }
        /// <summary>Urdu‎</summary>
        public static LangCode ur { get { return new LangCode { BaseValue = "ur" }; } }
        /// <summary>Urdu (Islamic Republic of Pakistan)‎</summary>
        public static LangCode ur_pk { get { return new LangCode { BaseValue = "ur-PK" }; } }
        /// <summary>Uzbek</summary>
        public static LangCode uz { get { return new LangCode { BaseValue = "uz" }; } }
        /// <summary>Uzbek (Cyrillic, Uzbekistan)</summary>
        public static LangCode uz_cyrl_uz { get { return new LangCode { BaseValue = "uz-Cyrl-UZ" }; } }
        /// <summary>Uzbek (Latin, Uzbekistan)</summary>
        public static LangCode uz_latn_uz { get { return new LangCode { BaseValue = "uz-Latn-UZ" }; } }
        /// <summary>Vietnamese</summary>
        public static LangCode vi { get { return new LangCode { BaseValue = "vi" }; } }
        /// <summary>Vietnamese (Vietnam)</summary>
        public static LangCode vi_vn { get { return new LangCode { BaseValue = "vi-VN" }; } }
        /// <summary>Welsh (United Kingdom)</summary>
        public static LangCode cy_gb { get { return new LangCode { BaseValue = "cy-GB" }; } }
        /// <summary>Wolof (Senegal)</summary>
        public static LangCode wo_sn { get { return new LangCode { BaseValue = "wo-SN" }; } }
        /// <summary>Yakut (Russia)</summary>
        public static LangCode sah_ru { get { return new LangCode { BaseValue = "sah-RU" }; } }
        /// <summary>Yi (PRC)</summary>
        public static LangCode ii_cn { get { return new LangCode { BaseValue = "ii-CN" }; } }
        /// <summary>Yoruba (Nigeria)</summary>
        public static LangCode yo_ng { get { return new LangCode { BaseValue = "yo-NG" }; } }
    }
}